package es.udc.fbellas.j2ee.tiendaweb.model.usuariofacade.plain.actions;

import java.sql.Connection;

import es.udc.fbellas.j2ee.tiendaweb.model.direccionpostal.DAO.SQLDireccionPostalDAO;
import es.udc.fbellas.j2ee.tiendaweb.model.direccionpostal.DAO.SQLDireccionPostalDAOFactory;
import es.udc.fbellas.j2ee.tiendaweb.model.direccionpostal.TO.DireccionPostalTO;
import es.udc.fbellas.j2ee.tiendaweb.model.usuario.DAO.SQLUsuarioProfileDAO;
import es.udc.fbellas.j2ee.tiendaweb.model.usuario.DAO.SQLUsuarioProfileDAOFactory;
import es.udc.fbellas.j2ee.tiendaweb.model.usuario.TO.UsuarioProfileTO;
import es.udc.fbellas.j2ee.util.exceptions.DuplicateInstanceException;
import es.udc.fbellas.j2ee.util.exceptions.InstanceNotFoundException;
import es.udc.fbellas.j2ee.util.exceptions.InternalErrorException;
import es.udc.fbellas.j2ee.util.sql.TransactionalPlainAction;

public class ModificarDireccionPostalAction implements TransactionalPlainAction{
	private UsuarioProfileTO usuarioProfileTO;
	private DireccionPostalTO direccionPostalTO;
	
	public ModificarDireccionPostalAction(UsuarioProfileTO usuarioProfileTO, DireccionPostalTO direccionPostalTO){
		this.usuarioProfileTO = usuarioProfileTO;
		this.direccionPostalTO = direccionPostalTO;
	}
	
	public Object execute(Connection connection) 
    throws InstanceNotFoundException, DuplicateInstanceException, InternalErrorException {
	    SQLDireccionPostalDAO direccionPostalDAO = SQLDireccionPostalDAOFactory.getDAO();
	    DireccionPostalTO dirPostalTO2 = direccionPostalDAO.create(connection, direccionPostalTO);
	    
	    SQLUsuarioProfileDAO usuarioProfileDAO = SQLUsuarioProfileDAOFactory.getDAO();
	    usuarioProfileDAO.find(connection, usuarioProfileTO.getLogin());
	    usuarioProfileTO.setIdDir(dirPostalTO2.getIdDir());
	    usuarioProfileDAO.update(connection, usuarioProfileTO);
	    return null;            
	}
}


